﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ProjetoJVA.localhostProfessor;
using System.Web.Services.Protocols;

namespace ProjetoJVA.Gui
{
    public partial class ProfessorTela : Form
    {
        ServiceProfessor servicoProfessor = new ServiceProfessor();
        public ProfessorTela()
        {
            InitializeComponent();
        }

        private void PrincipalTela_Load(object sender, EventArgs e)
        {

            this.FormBorderStyle = FormBorderStyle.FixedDialog;
            atualizarLista();

        }

        private void botaoTurmas_MouseUp(object sender, MouseEventArgs e)
        {
            
        }

        private void botaoTurmas_MouseEnter(object sender, EventArgs e)
        {
        }

        private void botaoSair_Click(object sender, EventArgs e)
        {
            Environment.Exit(0);
        }

        private void botaoTurmas_Click(object sender, EventArgs e)
        {
            NovoProfessorTela npt = new NovoProfessorTela(listProfessor);
            npt.ShowDialog();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            PrincipalTela pt = new PrincipalTela();
            pt.Show();
            this.Dispose();
        }

        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void botaoAlterar_Click(object sender, EventArgs e)
        {
            alterar();
        }

        private void botaoExcluir_Click(object sender, EventArgs e)
        {

        }
        
        public void atualizarLista()
        {
            List<Professor> lista;
            try
            {
                lista = servicoProfessor.listar().ToList<Professor>();
             
                listProfessor.Items.Clear();
                for (int i = 0; i < lista.Count; i++)
                {
                    ListViewItem linha = listProfessor.Items.Add(lista[i].Matricula.ToString());
                    linha.SubItems.Add(lista[i].Nome);
                    linha.SubItems.Add(lista[i].Endereco);
                    linha.SubItems.Add(lista[i].Fone);
                    linha.SubItems.Add(lista[i].Email);
                    linha.SubItems.Add(lista[i].Sexo.ToString());
                    linha.SubItems.Add(lista[i].Funcao);
                    linha.SubItems.Add(lista[i].Titulacao);
                    linha.SubItems.Add(lista[i].Disciplina.Nome);
                }
                 
            }
            catch (SoapException ex)
            {
                var menssagem = ex.Message;
                menssagem = menssagem.Remove(0, menssagem.LastIndexOf("--->"));
                menssagem = menssagem.Remove(0, menssagem.IndexOf(":") + 1);

                if (menssagem.IndexOf('\n') >= 0)
                {
                    menssagem = menssagem.Remove(menssagem.IndexOf('\n'));
                }

                MessageBox.Show(menssagem, "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
                 
        }

        public void alterar()
        {
            try
            {
                Professor professor = new Professor();
                professor.Matricula = Convert.ToInt32(listProfessor.SelectedItems[0].SubItems[0].Text);
                professor.Nome = listProfessor.SelectedItems[0].SubItems[1].Text;
                professor.Endereco = listProfessor.SelectedItems[0].SubItems[2].Text;
                professor.Fone = listProfessor.SelectedItems[0].SubItems[3].Text;
                professor.Email = listProfessor.SelectedItems[0].SubItems[4].Text;
                professor.Sexo = Convert.ToChar(listProfessor.SelectedItems[0].SubItems[5].Text);
                professor.Funcao = listProfessor.SelectedItems[0].SubItems[6].Text;
                professor.Titulacao = listProfessor.SelectedItems[0].SubItems[7].Text;

                Disciplina disciplina = new Disciplina();
                disciplina.Nome = listProfessor.SelectedItems[0].SubItems[8].Text;

                professor.Disciplina = disciplina;

                AlterarProfessorTela apt = new AlterarProfessorTela(professor, listProfessor);
                apt.ShowDialog();
            }
            catch (ArgumentOutOfRangeException)
            {
                MessageBox.Show("Nenhum professor selecionado!", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
         
    }
}
